1. Field
Embodiments of the invention generally relate to computer implemented techniques for rapidly determining certain numerical values. More specifically, embodiments of the invention relate to techniques for calculating common logarithms to large precisions.
2. Description of the Related Art
In mathematics, a logarithm of a number to a given base is the power or exponent to which the base must be raised in order to produce that number. For example, the logarithm of 1000 to base 10 is 3. A logarithm with base 10 is generally known as a common logarithm. The fractional part of a logarithm is known as the “mantissa” or “significand”; the integer part is called the “characteristic”. For example, the logarithm of 120 is written as log10 120=2.07918125, where 2 is the characteristic and 0.07918125 is the mantissa. One property of logarithms is multiplication may be reduced to addition: the logarithm of a product of two numbers is equal to the sum of the logarithm of the first number and the logarithm of the second number. That is, log(ab)=log(a)+log(b). Similarly, logarithms reduce division to subtraction: the logarithm of the quotient of two numbers is equal to the difference between the logarithm of the first number and the logarithm of the second number. That is,
      log    ⁡          (              a        b            )        =            log      ⁡              (        a        )              -                  log        ⁡                  (          b          )                    .      
Logarithms have numerous applications, particularly in finance where some transactions require the use of logarithmic operations. In some contexts, financial data may be stored in a format or manner in which known and conventional methods of computing logarithms are inappropriate. In addition, calculation of logarithms may be limited to a certain precision due to constraints in hardware and/or software architecture. For example, double precision calculations provide precision up to 1017. A logarithm may be calculated for precision less than 1018 by using the following equation:
  x  =      889    *                  (                              y                          1              2048                                -          1                )            .      Logarithms needing precision greater than 1018 must be calculated through an alternative method.